package db;

import java.sql.SQLException;
import java.util.LinkedList;

import model.Item;
import model.Outsider;

public interface IFItem 
{
	public int createItem(Item item) throws SQLException;
	public int updateItem(Item item) throws SQLException;
	public int updateItemQuantity(int itemID, int addStock, int removeStock) throws SQLException;
	public int getItemStock(int itemID) throws SQLException;
	public int addItemStock(int itemID, int quantity, Outsider supplier, boolean update) throws SQLException;

	public double getItemPrice(int itemID) throws SQLException;

	public Item searchItemByID(int id) throws SQLException;
	public Item searchItemByName(String name) throws SQLException;

	public LinkedList<Item> searchItemEverything(boolean active, String type, String search) throws SQLException;
	public LinkedList<Item> searchItemName(boolean active, String type, String search) throws SQLException;
	public LinkedList<Item> searchItemSupplier(boolean active, String type,	String search) throws SQLException;
	public LinkedList<Item> searchItemCity(boolean active, String type,	String search) throws SQLException;
	public LinkedList<Item> searchItemCountry(boolean active, String type, String search) throws SQLException;
	public LinkedList<Item>	printAllItemsWithStock() throws SQLException;
}